<#ftl strip_whitespace=true >
<#assign _CONTEXT_ = "jpa" >
package ${entityPackageName};

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.SequenceGenerator;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

<#list importedTypes as type>
import ${type};
</#list>

@Entity (name="${name}")
@Table (name="${tableName}")
@Cache (usage=CacheConcurrencyStrategy.READ_WRITE)
public class ${jpaName} implements ${name} {

	/*
<#include "entitySql.ftl">
	*/

<#if serializable>
	private static final long serialVersionUID = 1L;
</#if>

<#include "entityAttributes.ftl" >	
	
<#include "entityJpaConstructor.ftl" >

<#include "entityGetterSetter.ftl" >

<#include "entityMethods.ftl" >

<#include "entityHashEqualsToString.ftl" >

}